package it.clariter.web.action;

import java.util.List;

import it.clariter.dao.AziendaDAO;
import it.clariter.dao.ClienteDAO;
import it.clariter.model.Azienda;
import it.clariter.model.Cliente;
import it.clariter.web.form.AziendaClienteForm;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

public class EseguiCrudAziendaClienteAction extends DispatchAction {

	
	public ActionForward nuovoCliente(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception{
		
		if(request.getSession().getAttribute("utente")==null){
			response.sendRedirect("login.jsp");
		}
		
		HttpSession session = request.getSession();
		AziendaClienteForm l = (AziendaClienteForm) form;
		Cliente cl = new Cliente();
		BeanUtils.copyProperties(cl, l);
		cl.setTipologia(ActionConstants.TIPOLOGIA_CLIENTE);
		new ClienteDAO().insert(cl);
		cl = (Cliente) session.getAttribute("clientePerRicerca");
		List<Cliente> lista = new ClienteDAO().findByExample(cl);
		session.setAttribute("clienti", lista);
		request.setAttribute("messaggio", "Cliente aggiunto correttamente");
		
		return mapping.findForward("cliente");
		
	}
	
	public ActionForward modificaCliente(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception{
		
		if(request.getSession().getAttribute("utente")==null){
			response.sendRedirect("login.jsp");
		}
		
		HttpSession session = request.getSession();
		AziendaClienteForm l = (AziendaClienteForm) form;
		Cliente cl = new Cliente();
		BeanUtils.copyProperties(cl, l);
		cl.setTipologia(ActionConstants.TIPOLOGIA_CLIENTE);
		new ClienteDAO().update(cl);
		cl = (Cliente) session.getAttribute("clientePerRicerca");
		List<Cliente> lista = new ClienteDAO().findByExample(cl);
		session.setAttribute("clienti", lista);
		request.setAttribute("messaggio", "Cliente modificato correttamente");
		
		return mapping.findForward("cliente");
		
	}
	
	
	
	public ActionForward nuovaAzienda(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception{
		
		if(request.getSession().getAttribute("utente")==null){
			response.sendRedirect("login.jsp");
		}
		
		HttpSession session = request.getSession();
		AziendaClienteForm l = (AziendaClienteForm) form;
		Azienda a = new Azienda();
		BeanUtils.copyProperties(a, l);
		
		new AziendaDAO().insert(a);
		a = (Azienda) session.getAttribute("aziendaPerRicerca");
		List<Azienda> lista = new AziendaDAO().findByExample(a);
		session.setAttribute("aziende", lista);
		request.setAttribute("messaggio", "Azienda aggiunta correttamente");
		
		return mapping.findForward("azienda");
		
	}
	
	public ActionForward modificaAzienda(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception{
		
		if(request.getSession().getAttribute("utente")==null){
			response.sendRedirect("login.jsp");
		}
		
		HttpSession session = request.getSession();
		AziendaClienteForm l = (AziendaClienteForm) form;
		Azienda a = new Azienda();
		BeanUtils.copyProperties(a,l);
		
		new AziendaDAO().update(a);
		a = (Azienda) session.getAttribute("aziendaPerRicerca");
		List<Azienda> lista = new AziendaDAO().findByExample(a);
		session.setAttribute("aziende", lista);
		request.setAttribute("messaggio", "Azienda modificata correttamente");
		
		return mapping.findForward("azienda");
		
	}
}
